home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 2003 June / macformat-130.iso / mac / Reviewed⁄Demos / Spearhead Demo / demota / pak1.pk3 / anim / cornerleft.scr < prev    next >
Encoding:
Text File  |  2002-10-21  |  5.5 KB  |  222 lines

  1. //-----
  2. // CornerLeft.scr
  3. //-----
  4. // Script for left corner combat
  5.  
  6. //println "cornerleft.scr called"
  7.  
  8.  
  9. // lineofsight check
  10. // twiching pain?
  11. CornerLeftStart:
  12.     local.canseetarget = 0
  13.     waitexec anim/reload.scr::ReloadInit
  14.  
  15.     //save current position
  16.     local.curpos = self.origin
  17.  
  18.     self setmotionanim (self.weapongroup + "_wall_alert_left")
  19.     wait 0.25
  20.     //self waittill flaggedanimdone
  21.     //local.randnum = randomint 2
  22.     //wait local.randnum
  23.  
  24. Cornerleft:
  25.     waitexec anim/smoking.scr::SmokeRemoveCigarette
  26.     self.painhandler = anim/cornerleft.scr::cornerleftpain
  27.     self.deathhandler = anim/cornerleft.scr::cornerleftdeath
  28.     self.blendtime = 0.25
  29.  
  30.  
  31.     // Taunt the enemy
  32.     local.randnum = randomint 100
  33.     if (local.randnum<50)
  34.     {
  35.         //println "taunting from behind a left corner"
  36.         self exec anim/say_taunt.scr
  37.     }
  38.  
  39.     //local.randnum = (randomint 2) + 1
  40.     //wait local.randnum
  41.  
  42.     self.origin = local.curpos
  43.  
  44.     self.painhandler = anim/cornerleft.scr::cornerleftshootpain
  45.     local.randnum = randomint 100
  46.     if (local.randnum<50 && local.canseetarget > 0)
  47.         {
  48.         switch (self.weapongroup)
  49.             {
  50.             case mp40:
  51.             case mp44:
  52.                 if (self.roundsinclip > 0)
  53.                     {
  54.                     //unload the whole clip to the target
  55.                     self setmotionanim (self.weapongroup + "_wall_blindfire_left_intro")
  56.                     self waittill flaggedanimdone
  57.                     local.canseetarget = self canshoot self.enemy
  58.  
  59.                     while (self.roundsinclip > 0 && local.canseetarget > 0)
  60.                         {
  61.                         self.origin = local.curpos
  62.                         self setmotionanim (self.weapongroup + "_wall_blindfire_left")
  63.                         self waittill flaggedanimdone
  64.                         self.roundsinclip = self.roundsinclip - 4
  65.                         local.canseetarget = self canshoot self.enemy
  66.                         }
  67.                     self.origin = local.curpos
  68.                     self setmotionanim (self.weapongroup + "_wall_blindfire_left_outtro")
  69.                     self waittill flaggedanimdone
  70.                     self.origin = local.curpos
  71.                     waitexec anim/reload.scr::Reload 1 0
  72.                     }
  73.                     else
  74.                     {
  75.                     self.origin = local.curpos
  76.                     waitexec anim/reload.scr::Reload 1 0
  77.                     }
  78.                 break
  79.             default:
  80.                 self setmotionanim (self.weapongroup + "_wall_blindfire_left")
  81.                 switch (self.weapongroup)
  82.                     {
  83.                     rifle:
  84.                     bar:
  85.                     thompson:
  86.                         wait 0.42
  87.                         break
  88.  
  89.                     pistol:
  90.                         wait 0.20
  91.                         break
  92.                     default:
  93.                         wait 0.40
  94.                         break
  95.                     }
  96.  
  97.                 local.canseetarget = self canshoot self.enemy
  98.  
  99.                 if (local.canseetarget <= 0)
  100.                     {
  101.                     self setmotionanim (self.weapongroup + "_wall_alert_left")
  102.                     wait 0.25
  103.                     }
  104.                 else
  105.                     {
  106.                     self waittill flaggedanimdone
  107.                     }
  108.                 self.origin = local.curpos
  109.                 waitexec anim/reload.scr::Reload 1 0
  110.                 break
  111.             }
  112.         }
  113.     else
  114.         {
  115.         self setmotionanim (self.weapongroup + "_wall_left_shoot_intro")
  116.         self waittill flaggedanimdone
  117.         local.canseetarget = 0
  118.         if (self.enemy)
  119.             {
  120.             //local.canseetarget = self cansee self.enemy
  121.             local.canseetarget = self canshoot self.enemy
  122.             }
  123.  
  124.         if (local.canseetarget <=0)
  125.         {
  126.             // JBW, timeout is to stop waiting and exit corner behavior (will return on sight)
  127.             local.timeout = level.time + (4 + randomfloat(2));
  128.             //wait 'till we see the target and stagger the sight checks
  129.             while (local.canseetarget <=0)
  130.             {
  131.                 wait ( 0.5 + randomfloat(0.5) );
  132.                 //local.canseetarget = self cansee self.enemy
  133.                 local.canseetarget = self canshoot self.enemy;
  134. //                println ("timeout- " + (local . timeout - level.time) );
  135.                 if ( level.time > local.timeout )
  136.                     self  breakspecial;
  137.             }
  138.         }
  139.  
  140.         switch (self.weapon)
  141.             {
  142.             case "springfield '03 sniper":
  143.             case "mauser kar 98k":
  144.             case "mauser kar 98d sniper":
  145.                 self setmotionanim (self.weapongroup + "_wall_left_shoot")
  146.                 self waittill flaggedanimdone
  147.                 local.canseetarget = self canshoot self.enemy
  148.                 break
  149.             default:
  150.                 while (self.roundsinclip > 0)
  151.                     {
  152.                     //self.origin = local.curpos
  153.                     self setmotionanim (self.weapongroup + "_wall_left_shoot")
  154.                     self waittill flaggedanimdone
  155.                     //self.roundsinclip = self.roundsinclip - 4
  156.                     waitexec anim/Reload.scr::CheckForCornerReload
  157.                     //local.canseetarget = self cansee self.enemy
  158.                     local.canseetarget = self canshoot self.enemy
  159.                     if (local.canseetarget <= 0)
  160.                         {
  161.                         break
  162.                         }
  163.                     }
  164.                 break
  165.             }
  166.  
  167.         self setmotionanim (self.weapongroup + "_wall_left_shoot_outro")
  168.         self waittill flaggedanimdone
  169.         self.origin = local.curpos
  170.         waitexec anim/reload.scr::Reload 1 0
  171.         }
  172.  
  173.     self.origin = local.curpos
  174.  
  175.     self.painhandler = anim/cornerleft.scr::cornerleftpain
  176.  
  177.     //local.randnum = randomint 100
  178.     //if (local.randnum<5)
  179.     if (local.canseetarget <= 0)
  180.         {
  181.         self setmotionanim (self.weapongroup + "_wall_peek_left")
  182.         wait 1.20
  183.         if (self.enemy)
  184.             {
  185.             local.canseetarget = self canshoot self.enemy
  186.             }
  187.  
  188.         self waittill flaggedanimdone
  189.         }
  190.  
  191.  
  192.     //
  193.     goto Cornerleft
  194.  
  195. end
  196.  
  197.  
  198. cornerleftpain:
  199.     waitexec anim/smoking.scr::SmokeRemoveCigarette
  200.     local.curpos = self.origin
  201.     self setmotionanim (self.weapongroup + "_wall_pain_left")
  202.     self waittill flaggedanimdone
  203.     self.origin = local.curpos
  204. end
  205.  
  206. cornerleftshootpain:
  207.     waitexec anim/smoking.scr::SmokeRemoveCigarette
  208. //    self.painhandler = NIL                                            // disable, doesnt work well repeated
  209.     local.curpos = self.origin
  210.     self setmotionanim (self.weapongroup + "_wall_shoot_pain_left")
  211.     self waittill flaggedanimdone
  212.     self.origin = local.curpos
  213. //    self.painhandler = anim/cornerleft.scr::cornerleftshootpain
  214. end
  215.  
  216. cornerleftdeath:
  217.     waitexec anim/smoking.scr::SmokeRemoveCigarette
  218.     self setmotionanim ("rifle_wall_death_left")
  219.     self waittill flaggedanimdone
  220.     self.position="dead"
  221. end
  222.